import httpRequest from './request';

/**
 * 获取美食与文创列表（真实接口）
 * @param {Object} params - 请求参数
 * @param {string} params.city - 城市代码，如 '650100'
 * @param {string} params.pageNum - 页码，默认 '1'
 * @param {string} params.pageSize - 每页数量，默认 '10'
 * @param {string} params.type - 类型：1为美食，2为文创
 * @returns {Promise<Array>} 美食或文创列表
 */
export async function fetchFoodCultureList(params = {}) {
  try {
    const response = await httpRequest.get('/travel/app/foodCulture/page', {
      city: params.city,
      pageNum: params.pageNum || '1',
      pageSize: params.pageSize || '10',
      type: params.type,
    });

    // 处理响应数据
    // 根据实际返回结构：response.data.rows
    const data = response?.data?.rows || [];

    return data;
  } catch {
    return [];
  }
}

/**
 * 兼容旧版本的函数（用于首页展示，混合美食和文创）
 * @param {string} city - 城市代码
 * @returns {Promise<Array>} 美食与文创混合列表
 */
export async function fetchFoodCulture(city) {
  try {
    // 不传 type 参数，获取所有数据，然后根据 tag 字段区分
    const allData = await fetchFoodCultureList({
      city,
      pageNum: '1',
      pageSize: '10',
      // 不传 type，获取所有类型
    });

    // 根据 tag 字段转换数据
    // tag=1 可能是美食，tag=2 可能是文创（需要根据实际情况调整）
    const combined = allData.map(item => ({
      id: item.id,
      type: item.tag === 1 ? 'food' : 'culture', // 根据 tag 区分类型
      name: item.title, // 使用 title 字段作为名称
      image: item.image, // 直接使用 image 字段
      content: item.content, // 描述内容
      // voiceUrl 字段已废弃
      tag: item.tag, // 标签
      city: item.city, // 城市代码
      raw: item,
    }));

    return combined;
  } catch {
    // 返回空数组，避免显示错误
    return [];
  }
}
